Method and apparatus for generating a suggested message to be sent over a network

ABSTRACT

The present disclosure is a method and apparatus for generating a suggested message. In one embodiment, a method for generating a suggested message includes monitoring, by an application server, a first device operated by a first user, detecting, by the application server, a triggering event relevant to the first user, and automatically generating the suggested message in response to the triggering event, where the suggested message is addressed to a second user.

This application is a continuation of U.S. patent application Ser. No.14/942,103, filed Nov. 16, 2015, now U.S. Pat. No. 9,414,208, which is acontinuation of U.S. patent application Ser. No. 13/534,351, filed Jun.27, 2012, now U.S. Pat. No. 9,191,786, all of which are hereinincorporated by reference in their entirety.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to network communications andrelates more particularly to techniques for generating suggestedmessages to be sent over a communication network.

With the proliferation of mobile communications, it is often difficultto manage the vast amounts of data that are exchanged. What is more,users typically do not have easy access to information that might makethe management of this data simpler or cannot access the information intime to take meaningful action. Additionally, users may often be unableto use their mobile communications devices in situations where they areneeded, such as when the users are driving and need to relay informationto others.

SUMMARY

The present disclosure is a method and apparatus for generating asuggested message. In one embodiment, a method for generating asuggested message includes monitoring, by an application server, a firstdevice operated by a first user, detecting, by the application server, atriggering event relevant to the first user, and automaticallygenerating the suggested message in response to the triggering event,where the suggested message is addressed to a second user.

BRIEF DESCRIPTION OF THE DRAWINGS

The teaching of the present disclosure can be readily understood byconsidering the following detailed description in conjunction with theaccompanying drawings, in which:

FIG. 1 is a block diagram illustrating an exemplary packet network,configured according to embodiments of the current disclosure;

FIG. 2 illustrates a flowchart of a method for generating a suggestedmessage to be sent over a network;

FIGS. 3A-3D illustrate various triggering events that might prompt thepresent disclosure to generate suggested message; and

FIG. 4 is a high level block diagram of the message generation methodthat is implemented using a general purpose computing device.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe figures.

DETAILED DESCRIPTION

In one embodiment, the present disclosure is a method and apparatus forassisting network communications using artificial intelligence.Embodiments of the disclosure make use of data to which a user might nothave easy access and suggest appropriate messages to be sent to otherusers based on triggering events and/or user preferences observed inthis data. In one particular embodiment, suggestions are made to theuser while the user has time to act on them. Furthermore, suggestionsare generated and presented to the user automatically (i.e., withoutrequiring the user to request the suggestions or explicitly provide anyinformation necessary to generate the suggestions).

FIG. 1 is a block diagram depicting one example of a communicationsnetwork 100. The communications network 100 may be any type ofcommunications network, such as for example, a traditional circuitswitched network (e.g., a public switched telephone network (PSTN)) oran Internet Protocol (IP) network (e.g., an IP Multimedia Subsystem(IMS) network, an asynchronous transfer mode (ATM) network, a wirelessnetwork, a cellular network (e.g., 2G, 3G and the like), a long termevolution (LTE) network, and the like) related to the currentdisclosure. It should be noted that an IP network is broadly defined asa network that uses Internet Protocol to exchange data packets.Additional exemplary IP networks include Voice over IP (VoIP) networks,Service over IP (SoIP) networks, and the like.

In one embodiment, the network 100 may comprise a core network 102. Thecore network 102 may be in communication with one or more accessnetworks 120 and 122. The access networks 120 and 122 may include awireless access network (e.g., a WiFi network and the like), a cellularaccess network, a PSTN access network, a cable access network, a wiredaccess network and the like. In one embodiment, the access networks 120and 122 may all be different types of access networks, may all be thesame type of access network, or some access networks may be the sametype of access network and other may be different types of accessnetworks. The core network 102 and the access networks 120 and 122 maybe operated by different service providers, the same service provider ora combination thereof.

In one embodiment, the core network 102 may include an applicationserver (AS) 104 and a database (DB) 106. Although only a single AS 104and a single DB 106 are illustrated, it should be noted that any numberof application servers 104 or databases 106 may be deployed.

In one embodiment, the AS 104 may comprise a general purpose computer asillustrated in FIG. 4 and discussed below. In one embodiment, the AS 104may perform the methods and algorithms discussed below related togenerating suggested messages to be sent over a network.

In one embodiment, the DB 106 may store contact information for users ofthe network 100. For example, the DB 106 may store cellular telephonenumbers, email addresses, social media profiles, and the like for eachuser. In addition, the DB 106 may store information relating to servicesto which the user is subscribed, including cellular telephone services,Internet services, gaming subscriptions, and social media services.

In one embodiment, the DB 106 stores a user profile that includes asummary of the user's past behavior and a set of user preferences. Forexample, the summary of the user's past behavior might indicate patternsin the user's responses to particular prompts or events (e.g., the userresponded negatively every time she received a message from Johninviting her to go on a date). The user preferences might includeconditional responses to particular prompts or events (e.g., if Johnsends a message inviting the user to go on a date, the user wants anaffirmative response to be sent to John).

In one embodiment, the access network 120 may be in communication withone or more user endpoint devices (also referred to as “endpointdevices” or “UE”) 108 and 110. In one embodiment, the access network 122may be in communication with one or more user endpoint devices 112 and114.

In one embodiment, the user endpoint devices 108, 110, 112 and 114 maybe any type of endpoint device such as a desktop computer or a mobileendpoint device such as a cellular telephone, a smart phone, a tabletcomputer, a laptop computer, a netbook, an ultrabook, a portable mediadevice (e.g., an MP3 player), a gaming console, a portable gamingdevice, and the like. It should be noted that although only four userendpoint devices are illustrated in FIG. 1, any number of user endpointdevices may be deployed. In one embodiment, any of the user endpointdevices may have one or more sensors integrated therein. These sensorsmay include, for example, location sensors, environmental sensors,acoustic sensors, position sensors, optical sensors, pressure sensors,proximity sensors, and the like. The AS 104 may subscribe to the outputsof these sensors, as discussed in greater detail below.

It should be noted that the network 100 has been simplified. Forexample, the network 100 may include other network elements (not shown)such as border elements, routers, switches, policy servers, securitydevices, a content distribution network (CDN) and the like.

FIG. 2 illustrates a flowchart of a method 200 for generating asuggested message to be sent over a network. In particular, the method200 generates suggested messages that may aid a user in communicatingwith others. In one embodiment, the method 200 may be performed by theAS 104 or a general purpose computing device as illustrated in FIG. 3and discussed below.

The method 200 begins at step 202. At step 204, the application server104 monitors user applications and endpoint devices. The endpointdevices may include, for example, any of the user endpoint devicesdescribed above in connection with FIG. 1. The applications may include,for example, communication applications, calendar applications,navigation applications, search applications, media applications, andthe like. The communication applications may include, for example,applications that allow communication over a cellular, IP, orcircuit-switched network, a short message service (SMS), a multimediamessage service (MMS), an instant message (IM) service, an emailservice, a social media network, or the like. In one embodiment,monitoring includes receiving or identifying the locations and positionsof the user devices (e.g., from other devices), the active applicationson the user devices, and the current activities on the user devices(including, for example, incoming and outgoing messages). Thus, to thisend, the monitoring may include observing the outputs of one or moresensors integrated with the user endpoint devices. In one embodiment,the method 200 monitors the applications and devices of multiple users.

At step 206, the application server 104 detects a triggering event. Atriggering event within the context of the present disclosure is anevent that prompts a response from the user. Thus, the triggering eventmight be the receipt of a message, the movement of the user devicewithin a certain geographic radius, the execution of a search on theuser device, or the expiration of a calendar entry, among other events.In one embodiment, the triggering event is predefined (e.g., as thepremise of a conditional statement). The triggering event may bepredefined by the user, by the user device, or by a device other thanthe user device. For example, in one embodiment, the user may programthe user device to respond to particular triggering events in particularways. In another embodiment, the user device may be pre-programmed torespond to particular triggering events in particular ways, or may learnover time (e.g., based on observations of the user's interactions) torespond to particular triggering events in particular ways. In still afurther embodiment, a device other than the user device may request thatthe user device respond to particular triggering events in particularways. Where the triggering event is predefined by the user device oranother device, the user's permission may be sought before storing thetriggering event and associated response. However, in other embodiments,the triggering event may be identified automatically based onobservation of past user behavior (e.g., the user always responds tomessages from a particular person).

At step 208, the application server 104 generates a suggested message inresponse to the triggering event. In one embodiment, the suggestedmessage relies at least in part on a user profile. The user profile maystore preferences that indicate how a user wishes to or tends to respondto events of particular types. For instance, if the triggering event isthe premise of a conditional statement stored in a user profile, thesuggested message might include the conclusion of the conditionalstatement (e.g., if John sends the user a message asking the user on adate, respond affirmatively to John). Alternatively, the user profilemay define patterns that indicate how the user has responded to similartriggering events in the past (e.g., the user has always respondednegatively when John has sent messages asking the user on a date). In afurther embodiment, the suggested message is based at least in part onthe status of one of more of the user applications and devices (e.g., asindicated by sensor outputs). For instance, if the triggering event isan appointment that is scheduled for ten minutes from now, and themethod 200 detects that the user is approximately fifteen minutes awayfrom the appointment location (e.g., based on the output of a locationsensor integrated in the user's cellular phone, such as a globalpositioning system sensor), the suggested message might include amessage to be sent to the person with whom the user is meeting informingthat person that the user will be late.

At step 210, a user endpoint device 108 presents the suggested messageto the user. For instance, the method 200 may display a dialog on thedisplay of one of the user's devices, where the dialog presents thesuggested message and asks for permission to send the suggested messageto the intended recipient (e.g., “John has sent you a message asking youon a date. Respond affirmatively? Yes/No.”). In one embodiment, thesuggested message includes an option for the user to edit the suggestedmessage.

At optional step 212 (illustrated in phantom), the user endpoint device108 receives a selection from the user in response to the suggestedmessage. In one embodiment, the user either approves the suggestedmessage or disapproves the suggested message. If the user disapprovesthe suggested message, then in one embodiment, no further action isnecessary. In this embodiment, the method 200 may thus return to step204 and the application server 104 will continue to monitor the userapplications and endpoint devices as described above. In anotherembodiment, however, the application server 104 may present the userwith an alternative suggested message. However, if the user approves thesuggested message, then the method 200 proceeds to optional step 214. Itis noted that the user may edit the suggested message prior to approvingthe suggested message.

At optional step 214 (illustrated in phantom), the user endpoint device108 sends the suggested message. In one embodiment, the suggestedmessage is sent along with changes suggested by the user. For instance,the user may wish to modify a proposed message that is to be sent toanother person (e.g., respond affirmatively to John, but suggest a dateon Saturday instead of Sunday). The method 200 then returns to step 204and the application server 104 continues to monitor the userapplications and endpoint devices as described above. In a furtherembodiment, certain details of steps 212 and 214 may be stored in theuser profile in order to update the user profile. For instance, the wayin which the user responds to the triggering action, including anymodifications the user makes to suggested messages provided in responseto the triggering action, may help refine the preferences and historythat are stored in the user profile.

As a result, the method 200 helps users respond to events in a timelymanner by observing and tracking data to which the user might not haveeasy access or might not pay attention.

It should be noted that although not explicitly specified, one or moresteps of the method 200 described above may include a storing,displaying and/or outputting step as required for a particularapplication. In other words, any data, records, fields, and/orintermediate results discussed in the methods can be stored, displayed,and/or outputted to another device as required for a particularapplication. Furthermore, steps or blocks in FIG. 2 that recite adetermining operation, or involve a decision, do not necessarily requirethat both branches of the determining operation be practiced. In otherwords, one of the branches of the determining operation can be deemed asan optional step.

Moreover, although certain operations are described as being performedby the application server or by the user endpoint device 108, it shouldbe noted that in other embodiments, the operations may be handleddifferently. For instance, in one embodiment, the user endpoint device108 may perform all steps of the method 200 with little or no assistancefrom the application server 104. Alternatively, the application server104 may perform all steps of the method 200 with little or no assistancefrom the user endpoint device 108.

As alluded to above, the method 200 may be implemented in a variety ofways to generate a suggested message to be sent over a network. FIGS.3A-3D illustrate various triggering events that might prompt the presentdisclosure to generate suggested message. For instance, in oneembodiment illustrated in FIG. 3A, the triggering event is an incomingmessage. Responding to the incoming message may include a review ofmonitored user applications, such as a calendar application. As anexample, the user might receive a text message from April asking if theuser wants to meet for dinner tonight. The suggested message mightinclude a suggested affirmative response (e.g., “Yes, I'd like to meetyou at 6:00 PM.”). Alternatively, the method 200 may, upon checking theuser's calendar application, detect that the user already has planstonight. In this case, the suggested message might include a suggestednegative response (e.g., “I'm sorry, I already have plans. Maybe anothertime?”).

In a further embodiment, generating a suggested message in response toan incoming message might include a review of the user's profile todetermine whether the user's preferences or past behavior dictate aparticular response. For instance, the user may have sent severalmessages to April in the past declining invitations for dinner. In thiscase, the method 200 might suggest that the user respond negatively toApril. Alternatively, the user's profile might indicate that the userwishes to accept any dinner invitations from April. In this case, themethod 200 might suggest that the user respond affirmatively to April.

In another embodiment illustrated in FIG. 3B, the triggering event is anappointment in the user's calendar application. Generating suggestedmessages relevant to appointments may include a review of the outputs ofsensors integrated in the monitored user devices (e.g., speed sensors,location sensors, clocks, etc.), as well as a review of monitored userapplications. For instance, a triggering event might be a reminder for a7:00 PM date with John. The method 200 may further detect locationsensor output indicating that the user is leaving her office.Accordingly, the method 200 may calculate the distance from the user'soffice to the date location and conclude that the user will be fifteenminutes late. In this case, the method 200 might suggest that the usersend John a text message alerting him to the fact that she will be late(e.g., “I am running about fifteen minutes late.”)

In another embodiment illustrated in FIG. 3C, the triggering event is anunscheduled or spontaneous a social opportunity. For instance, atriggering event may include the method 200 detecting (e.g., based on ananalysis of the outputs of location sensors integrated into the user'scellular phone and her friend's cellular phone) that the user's presentgeographic location is within a threshold distance (e.g., two miles)from her friend's present geographic location. The method 200 mayfurther detect, based on a review of the user's calendar application andthe friend's calendar application, that the user and the friend are bothfree around lunch time. In this case, the method 200 might suggest thatthe user send a message to her friend to try to arrange a meeting (e.g.,“Do you want to meet for lunch in an hour?”).

In a further embodiment still, the method 200 might review the user'sprofile and the friend's profile for food preferences (e.g., the usermay be a vegetarian, or the friend's favorite type of food might beChinese). The profile information and location information may be usedby the method 200 to perform a search of local restaurants for potentiallunch locations and directions thereto.

In another embodiment illustrated in FIG. 3D, the triggering event is astatus change related to the user's networked home devices. Networkedhome devices may include various home appliances and computing devices,such as a refrigerator, a washing machine or dryer, a dishwasher, anoven, a home computer, a set top box, a gaming console, a telephone, orthe like. For instance, the method 200 might subscribe to the output ofa sensor that monitor's the user's refrigerator inventory. A triggeringevent might be a sensor output indicating that the inventory is low onmilk. Moreover, the user's profile might indicate that when theinventory is low, a message should be sent to John asking him to pick upthe necessary items. Thus, the method 200 might suggest that theindicated message be sent to John (e.g., “Please pick up milk on yourway home from work.”).

FIG. 4 depicts a high-level block diagram of a general-purpose computersuitable for use in performing the functions described herein. Thegeneral-purpose computing device may be part of the application server104 or one of the user endpoint devices 108-114 described above. Asdepicted in FIG. 4, the system 400 comprises a hardware processorelement 402 (e.g., a CPU), a memory 404, e.g., random access memory(RAM) and/or read only memory (ROM), a module 405 for generatingsuggested messages, and various input/output devices 406, e.g., storagedevices, including but not limited to, a tape drive, a floppy drive, ahard disk drive or a compact disk drive, a receiver, a transmitter, aspeaker, a display, a speech synthesizer, an output port, and a userinput device (such as a keyboard, a keypad, a mouse, and the like).

It should be noted that the present disclosure can be implemented insoftware and/or in a combination of software and hardware, e.g., usingapplication specific integrated circuits (ASIC), a general purposecomputer or any other hardware equivalents, e.g., computer readableinstructions pertaining to the method(s) discussed above can be used toconfigure a hardware processor to perform the steps of the abovedisclosed method. In one embodiment, the present module or process 405for generating suggested messages can be loaded into memory 404 andexecuted by hardware processor 402 to implement the functions asdiscussed above. As such, the present module 405 for generatingsuggested messages as discussed above in method 200 (includingassociated data structures) of the present disclosure can be stored on anon-transitory (e.g., tangible or physical rather than a propagatingsignal) computer readable storage medium, e.g., RAM memory, magnetic oroptical drive or diskette and the like.

While various embodiments have been described above, it should beunderstood that they have been presented by way of example only, and notlimitation. Thus, the breadth and scope of a preferred embodiment shouldnot be limited by any of the above-described exemplary embodiments, butshould be defined only in accordance with the following claims and theirequivalents.

What is claimed is:
 1. A method for processing a suggested message, themethod comprising: receiving, by a processor of a first device of afirst user, the suggested message in response to a triggering eventdetected by an application server of a communication network, where thesuggested message is addressed to a second user, wherein the suggestedmessage comprises a suggestion to be acted on by the first user; andsending, by the processor, a response to the application server, whereinthe response indicates that the suggested message is to be sent to thesecond user.
 2. The method of claim 1, wherein the triggering event is amessage received by the first device.
 3. The method of claim 1, whereinthe triggering event is a reminder generated by a calendar applicationassociated with the first device.
 4. The method of claim 1, wherein thetriggering event is an execution of a search on the first device.
 5. Themethod of claim 1, wherein the triggering event is detected in an outputof a sensor.
 6. The method of claim 5, wherein the sensor is integratedin the first device.
 7. The method of claim 6, wherein the output of thesensor is a present geographic location of the first device.
 8. Themethod of claim 5, wherein the sensor is integrated in a second device.9. The method of claim 8, wherein the second device is operated by thesecond user.
 10. The method of claim 9, wherein the output of the sensoris a present geographic location of the second device.
 11. The method ofclaim 8, wherein second device resides in a residence of the first user.12. The method of claim 1, wherein the suggested message isautomatically generated by the application server consulting a profileassociated with the first user.
 13. The method of claim 12, wherein theprofile stores a user preference.
 14. The method of claim 13, whereinthe user preference is a conditional statement in which a premise of theconditional statement is the triggering event and a conclusion of theconditional statement is used to generate the suggested message.
 15. Themethod of claim 12, wherein the profile stores a pattern derived from acommunication history associated with the first user.
 16. The method ofclaim 1, wherein the response includes a change made by the first userto the suggested message.
 17. A non-transitory computer readable mediumcontaining an executable program for processing a suggested message,where the executable program, when executed by a processor of a firstdevice of a first user, causes the processor to perform operations, theoperations comprising: receiving the suggested message in response to atriggering event detected by an application server of a communicationnetwork, where the suggested message is addressed to a second user,wherein the suggested message comprises a suggestion to be acted on bythe first user; and sending a response to the application server,wherein the response indicates that the suggested message is to be sentto the second user.
 18. The non-transitory computer readable medium ofclaim 17, wherein the suggested message is automatically generated bythe application server consulting a profile associated with the firstuser.
 19. A system for processing a suggested message, the systemcomprising: a processor; and a computer readable medium containing anexecutable program that causes the processor to perform operations, theoperations comprising: receiving the suggested message in response to atriggering event detected by an application server of a communicationnetwork, where the suggested message is addressed to a second user,wherein the suggested message comprises a suggestion to be acted on bythe first user; and sending a response to the application server,wherein the response indicates that the suggested message is to be sentto the second user.
 20. The system of claim 19, wherein the suggestedmessage is automatically generated by the application server consultinga profile associated with the first user.